#pragma once

#include <Trainer.h>
#include <DecisionTree.h>

class ChessTree;

class ChessTrainer : public ExperientialSystem::Trainer
{
	ChessTree *_chessTree;

public:
	ChessTrainer(ExperientialSystem::DecisionTree* tree ,ChessTree* chessTree );
	~ChessTrainer();

private:

	virtual void RunEpoch() ;

	virtual bool ShallEnd() ;

	virtual void OnStart() ;

	//<minPieces> is the minimal pieces of chess status with non default value.
	int GetNonZeroValueCount(int& minPieces) const;
};

